package com.课上案例练习.网络编程.版本四群聊;
import com.课上案例练习.网络编程.版本四群聊.接收的线程.CilentThreadinput;
import com.课上案例练习.网络编程.版本四群聊.接收的线程.ServerThreadinput;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Scanner;

import static com.课上案例练习.网络编程.版本四群聊.Client.socketArrayList;

/**
 * 版本四群聊
 */

/**
 * 客户端
 */
public class Client {
   public static   ArrayList<Socket> socketArrayList = new ArrayList<>();
    static Scanner input = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("localhost", 9999);
        //该线程用来接收信息
        new CilentThreadinput(socket).start();
        while (true) {
            //传输信息
            DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
            dataOutputStream.writeUTF(input.next());
        }
    }
}

/**
 * 服务端，相当于一个广播，
 */
class Server {
    /**
     * 创建一个集合，目的的接收所有的用户连接
     */

    public static void main(String[] args) throws IOException {
        System.out.println("服务器启动");
        ServerSocket serverSocket = new ServerSocket(9999);
          while (true){
              Socket accept = serverSocket.accept();
              socketArrayList.add(accept);
              System.out.println("在线人数 ： "+socketArrayList.size());
              //创建一个线程，接收信息,如果没有信息，则一直等待
              new ServerThreadinput(accept).start();
          }

    }
}